package 容器方法测试;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class MapMain
{
	public static void main(String[] args)
	{
		System.out.println("==");
		Map<String,String> map = new HashMap<String,String>();
		/*自我介绍*/
		System.out.println("=="+map);
		/*容器的大小*/
		System.out.println("=="+map.size());
		/*是否为空*/
		System.out.println("=="+map.isEmpty());
		/*增加*/
		String s = map.put("小雪", "你好吗");
		s = map.put("小红","我很好");
		System.out.println("=="+map);
		/*通过键找值*/
		String v = map.get("小雪");
		System.out.println("=="+v);
		/*是不是包含此键*/
		System.out.println("=="+map.containsKey("小红"));
		/*是不是包含此值*/
		System.out.println("=="+map.containsValue("你好吗"));
		/*容器是不是为空*/
		System.out.println("=="+map.isEmpty());
		/*取出键的集合 
		 * 在循环中通过键找值*/
		Set<String> keySet = map .keySet();
		for (Iterator<String> it = keySet.iterator(); it.hasNext();)
		{
			String type =it.next();
			/*通过键找值*/
			String vl = map.get(type);
			System.out.println(type+"=="+vl);
		}
		/*第二种方法 一对一对 的取值 
		 * 集合中放的是Entry*/
		Set<Entry<String,String>> entry = map.entrySet();
		for (Iterator it= entry.iterator(); it.hasNext();)
		{
			Entry<String, String> en= (Entry<String, String>) it.next();
			/*一对一对的放置， 被JDK 封装为Entry*/
			String k = en .getKey();
			String vl = en .getValue();
			System.out.println(k+"=="+vl);
		}
		/*---包含值的集合---*/
		Collection<String> cl = map.values();
		/*直接输出值的集合*/
		System.out.println("=="+cl);
		/*循环打印值的集合*/
		for (Iterator iterator = cl.iterator(); iterator.hasNext();)
		{
			String string = (String) iterator.next();
			System.out.println("=="+string);
		}
		/*更新：Map 中键不能重复 如果重复原有的值就会被替代*/
		/*删除*/
		System.out.println("=="+map);
		s = map.remove("卧槽");
		System.out.println("=="+s);
		boolean flag =map.remove("小雪", "你好吗");
		System.out.println("=="+flag);
		System.out.println("=="+map);
	}
}
